1. Field of the Invention
The invention relates to terminating SCSI buses, and more particularly to automatically terminating wide and narrow SCSI buses depending on usage.
2. Description of the Related Art
Computer systems are becoming more powerful and flexible with each passing moment. These changes are due to numerous factors, including improvements in semiconductor devices such as microprocessors and memory chips, in computer system architectures and in software capabilities.
One way flexibility is increasing, as well as performance in many instances, is by the use of Small Computer System Interface (SCSI) compatible storage devices. SCSI is a standard specification developed by the American National Standard for Information System (ANSI) and has gone through several generations. The current issued specification is SCSI-2, with SCSI-3 under development. The specification, either final or most recent published draft, for SCSI-2, which is hereby incorporated by reference, defines mechanical, electrical and functional requirements for various peripheral devices. The peripheral devices include hard disk drives, CD-ROM drives, tape units, optical drives, scanners and others as commonly used with small computers.
One advantage of SCSI is that numerous devices can be connected to a single bus and be accessed through a single controller, with only software device drivers varying between the devices. This allows easy connection of new devices. Combined with the variety of devices, SCSI thus is a very flexible system.
A second advantage of SCSI is that it is a high performance standard. Thus, as it becomes more widely supported, computer system performance will increase. Because of the high performance capabilities, specialized controller integrated circuits have been developed. These chips handle many of the low level complexities of interfacing to the SCSI bus, which is the connection between the controller and the various devices. This reduction to an integrated circuit level improves performance and simplifies the software device drivers which execute on the host computer system. Recent controller chips have become quite advanced. One example is the 53C825 SCSI I/O Processor from NCR Corporation (NCR) of Dayton, Ohio. This device includes a DMA interface to allow movement of data between the SCSI devices and host computer memory without host processor intervention. This provides a large performance increase.
The 53C825 further includes the capability to communicate with both wide and narrow SCSI devices. A narrow SCSI device has an 8-bit parallel data bus, while a wide SCSI device has a 16-bit parallel data bus. A wide SCSI bus can also accommodate narrow SCSI devices by using a wide-to-narrow connecting cable. The SCSI bus can accept up to eight devices, each device having a specific ID. As one device must be a controller, then only seven SCSI devices can be connected to the controller. The connection is physically accomplished by daisy chaining the SCSI devices together with a cable. Familiarity with the NCR 53C825 SCSI I/O controller or a similar device and operations on the SCSI bus are assumed in this specification.
A requirement of the SCSI bus is that it be terminated to preserve signal integrity as is common on distributed capacitive loads such as the SCSI bus. The SCSI bus must be terminated at each end of the bus, but the terminators may be internal to the SCSI devices at the end of the cable. Terminators are specified by the SCSI standard to be 220 ohms to Terminal Power and 330 ohms to ground for passive termination. Active termination using a 2.85 volt regulator and a 110 ohm resistor is recommended for data rates of 5 Mbytes per second or higher. Terminal Power is equivalent to 5 volt power with a backflow current prevention diode. The design for generating Terminal Power, or TERMPWR, is well known and is not discussed herein.
One problem with terminating arises when the SCSI controller is driving a SCSI bus where the bus controller is in the middle of the bus, rather than at one end. Such is the case when the computer has an internal bus and a connector for external expansion. The internal bus is for the system hard drive and other SCSI peripherals added internally to the computer system. The external SCSI bus provides expandability so that devices external to the computer system can still communicate over the installed SCSI bus. An external SCSI connector is typically provided at the rear of the computer system. When two physically different buses are present, then the controller may find itself not at the end of the SCSI bus, but in the middle. In this case, the devices at the end of the internal and external SCSI branches are responsible for terminating the SCSI bus. However, if either the external or internal SCSI bus is not utilized, then the controller would be at the end of the bus and therefore would be required to supply a terminator.
One solution to this problem is described in U.S. patent application Ser. No. 07/955,938 entitled "Automatic Disabling of Termination of a Digital Computer Bus", which is herein incorporated by reference. A SCSI system is described having an internal and external SCSI bus where the terminators are automatically configured upon detecting the presence of various SCSI devices.
Another further termination problem exists if the two buses are of different sizes. For example, if the internal SCSI bus is narrow and has a narrow SCSI device attached and the external SCSI bus is wide and has a wide SCSI device attached, then the controller is in the center of the bus with respect to the lower 8 data bits, but at the end of the bus with respect to the upper data bits. Thus, only the upper data bits would require termination at the controller.
The wide SCSI buses can also be configured to communicate with narrow SCSI devices by using a wide-to-narrow cable. Returning to the above example again, if the external SCSI bus is wide but has only a narrow SCSI device attached but the narrow SCSI device is connected using a wide-to-narrow cable, then the controller is in the middle and all termination will be handled by the SCSI devices since they are at the ends of the SCSI bus.
Other variations can be developed, but it is apparent that a system for detecting the presence and size of an attached SCSI device and automatically terminating the SCSI bus would be desirable. Further, it would be desirable to automatically terminate the SCSI bus if it supports numerous different sizes of buses.